package com.promise.jokerdream.database.dao

import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Update
import com.promise.jokerdream.database.entity.UserConfigEntity

/**
 * 用户配置数据访问对象
 */
@Dao
interface UserConfigDao {
    
    /**
     * 插入或更新用户配置
     */
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertOrUpdate(config: UserConfigEntity)
    
    /**
     * 更新用户配置
     */
    @Update
    suspend fun update(config: UserConfigEntity)
    
    /**
     * 根据用户ID获取配置
     */
    @Query("SELECT * FROM user_config WHERE userId = :userId LIMIT 1")
    suspend fun getByUserId(userId: String): UserConfigEntity?
    
    /**
     * 删除用户配置
     */
    @Delete
    suspend fun delete(config: UserConfigEntity)
    
    /**
     * 根据用户ID删除配置
     */
    @Query("DELETE FROM user_config WHERE userId = :userId")
    suspend fun deleteByUserId(userId: String)
}

